package com.ctshk.rpc.order.tour.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.ctshk.common.model.BaseEntity;
import com.ctshk.common.model.IBaseEntity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 系列团订单
 * </p>
 *
 * @author 谭响
 * @since 2021-01-18
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_series_order")
@ApiModel(value = "SeriesOrder对象", description = "系列团订单")
public class SeriesOrder extends BaseEntity implements IBaseEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "订单号")
    private String orderNumber;

    @ApiModelProperty(value = "订单来源（1：CPM云平台，2 ：CPM代理下单，3 ：PC官网，4 ：安卓，5：IOS，6：H5）")
    private Integer orderSource;

    @ApiModelProperty(value = "团期ID")
    private Long scheduleId;

    @ApiModelProperty(value = "联络人中文姓")
    private String contactCnSurname;

    @ApiModelProperty(value = "联络人中文名")
    private String contactCnName;

    @ApiModelProperty(value = "联络人英文姓")
    private String contactEnSurname;

    @ApiModelProperty(value = "联络人英文名")
    private String contactEnName;

    @ApiModelProperty(value = "联络人性别")
    private Integer contactGender;

    @ApiModelProperty(value = "联络电话")
    private String contactTelephones;

    @ApiModelProperty(value = "联系邮箱")
    private String contactEmail;

    @ApiModelProperty(value = "内部备注")
    private String internalRemark;

    @ApiModelProperty(value = "客户类型")
    private Integer customerType;

    @ApiModelProperty(value = "大客户ID")
    private Long bigClientId;

    @ApiModelProperty(value = "大客户名称")
    private String bigClientName;

    @ApiModelProperty(value = "总人数")
    private Integer totalPeople;

    @ApiModelProperty(value = "总金额")
    private BigDecimal totalPrice;

    @ApiModelProperty(value = "房间数")
    private Integer roomNum;

    @ApiModelProperty(value = "星赏会会员ID")
    private String memberId;

    @ApiModelProperty(value = "会员姓名")
    private String memberName;

    @ApiModelProperty(value = "会员手机号")
    private String memberMobile;

    @ApiModelProperty(value = "会员邮箱")
    private String memberEmail;

    @ApiModelProperty(value = "会员总积分")
    private String memberScore;

    @ApiModelProperty(value = "会员等级")
    private String memberLevel;

    @ApiModelProperty(value = "使用积分")
    private String useScore;

    @ApiModelProperty(value = "追位留位类型")
    private Integer plusTouristType;

    @ApiModelProperty(value = "下单类型")
    private Integer orderType;

    @ApiModelProperty(value = "下单状态")
    private Integer placeOrderStatus;

    @ApiModelProperty(value = "追位审批ID")
    private Long approvalId;

    @ApiModelProperty(value = "所属代理商ID")
    private Long agentId;

    @ApiModelProperty(value = "代理商名称")
    private String agentName;

    @ApiModelProperty(value = "代理人ID")
    private Long agentUserId;

    @ApiModelProperty(value = "代理人名称")
    private String agentUserName;

    @ApiModelProperty(value = "'行程id（冗余）'")
    private Long tripId;

    @ApiModelProperty(value = "'行程标题(冗余)'")
    private String tripTitle;

    @ApiModelProperty(value = "'团号(冗余)'")
    private String scheduleNumber;

    @ApiModelProperty(value = "'出发日期(冗余)'")
    private LocalDate departDate;

    @ApiModelProperty(value = "'团状态(冗余)'")
    private Integer scheduleStatus;

    @ApiModelProperty(value = "创建人")
    private Long createId;

    @ApiModelProperty(value = "修改人")
    private Long modifiedId;

    @ApiModelProperty(value = "删除标识")
    private Integer isDeleted;

    @ApiModelProperty(value = "会员类型（1：星赏会会员，2：普通会员，3：无会员）")
    private Integer memberType;

    @ApiModelProperty(value = "电话区号（C端）")
    private String phoneCode;

    @ApiModelProperty(value = "电话（C端）")
    private String phone;

    @ApiModelProperty(value = "支付状态（0待支付 1已支付 ）（C端）")
    private Integer isPay;

    @ApiModelProperty(value = "订单状态（0 待使用 1已完成 2用户取消 3超时关闭 4售后中 5售后完成）（C端）")
    private Integer orderStatus;

    @ApiModelProperty(value = "退款状态（0未申请 1待处理 2处理中 3已退款 4退款失败）(C端）")
    private Integer refundStatus;

    @ApiModelProperty(value = "支付截止时间")
    private LocalDateTime payEndTime;

    @ApiModelProperty(value = "支付时间")
    private LocalDateTime payTime;

    @ApiModelProperty(value = "查詢編號")
    private String queryNumber;

    @ApiModelProperty(value = "C端用户ID")
    private Long userId;

    @ApiModelProperty(value = "可获得积分")
    private Integer point;

    @ApiModelProperty(value = "销售人员id")
    private Long salesmanId;

    @ApiModelProperty(value = "销售人员名称")
    private String salesmanName;

    @ApiModelProperty(value = "收据抬头")
    private String receiptHeader;

    @ApiModelProperty(value = "团期锁位是否已解锁(0未解锁 1已解锁)")
    private Integer isUnlock;
}